home *** CD-ROM | disk | FTP | other *** search
/ Network Supervisor's Toolkit / Network Supervisor's Toolkit.iso / tools / lu62 / port / bss.h < prev    next >
C/C++ Source or Header  |  1996-07-10  |  37KB  |  1,053 lines

  1. /* k 0224     23/09/91      */
  2. /* k 0226     24/09/91      */
  3. /* k 0227       26/09/91        *//* corrections for literals */
  4. /* k 0230       09/10/91        *//* assemble some data */
  5. /* k 0231       10/10/91        *//* resident module */
  6. /* k 0233    12/10/91    *//* Trn modules */
  7. /* k 0234       14/10/91        *//* OVL_TYPE */
  8. /* k 0235    18/10/91    *//* pswitch for showdata */
  9. /* k 0243    20/10/91    *//* common resources */
  10. /* k 0245    20/10/91    *//* statscreen */
  11. /* k 0247    22/10/91    */
  12. /* k 0254    31/10/91    *//* Status data */
  13. /* k 0262       11/1//91        *//* sk[5] for status */
  14. /* k 0264       12/11/91        *//* Codes */
  15. /* k 5001       18/11/91        */  /* from KIROV */
  16. /* k 0282       12/12/91        *//* from BSS */
  17. /* k 0292       23/12/91        *//* save initial path */
  18. /* k 0304    23/02/92    *//* extend path field */
  19. /* k 0306       24/02/92        *//* ddoff */
  20. /* k 0307       24/02/92        *//* 300-byte segments */
  21. /* k 0317    14/03/92    *//* delete emadapt.h */
  22. /* k 0320    22/03/92    *//* New initialization */
  23. /* k 1082   23/03/92    *//* definition bufvt,buflan */
  24. /* k 1083   25/03/92    *//* SOLARIS-2 adapter       */
  25. /* k 0322    26/03/92    *//* Files menu */
  26. #include <include.h>
  27. #include <vt.h>
  28. #include <conio.h>
  29. /* @0317 */
  30. #include <bufmap.h>
  31. #include <dcr.h>
  32. #include <tbs.h>             /* 5001 */
  33. #include <tabm.h>
  34. #include <popen39.h>
  35. #include <pget39.h>
  36. #include <pfree39.h>
  37. #include <pwrite39.h>
  38. #include <pread39.h>
  39. #include <bufdrv.h>
  40. #include <p3927c.h>   /*ßΓpπ¬Γπpδ ææé ¿ ßΓpπ¬Γπpδ ñ«»«½¡¿Γѽ∞¡δσ »ápá¼ÑΓp«ó drvtrn39*/
  41. #include <p3926c.H>    /* TRANSMIT */
  42. #include <p3928c.H>    /* RECEIVE  */
  43. #include <p390bc.H>    /* BUFFER_GET  */
  44. #include <p3915c.H>    /* BUFFER_FREE  */
  45. #include <p3915t.H>    /* OPEN          */
  46. #include <p3916c.H>    /* CLOSE */
  47. #include <p3927t.H>
  48. #include <p3928t.H>
  49. #include <p390bt.H>
  50. #include <p3926t.H>          /* 5001 */
  51. #define MAXDIR 66    /* @0322 */
  52. struct WORDREGS {
  53.     unsigned int    ax, bx, cx, dx, si, di, cflag, flags;
  54. };
  55.  
  56. struct BYTEREGS {
  57.     unsigned char    al, ah, bl, bh, cl, ch, dl, dh;
  58. };
  59.  
  60. union    REGS    {
  61.     struct    WORDREGS x;
  62.     struct    BYTEREGS h;
  63. };
  64.  
  65. struct    SREGS    {
  66.     unsigned int    es;
  67.     unsigned int    cs;
  68.     unsigned int    ss;
  69.     unsigned int    ds;
  70. };
  71. struct buf_vt  {    /* @0233 */
  72. #if (OS_TYPE!=0)    /* @0215 */
  73.  unsigned  char contents [4000];     /* @0208 */
  74. #endif            /* @0215 */
  75.  unsigned  int cursor_size;
  76.   int curx,cury,currmode;    /* @0233 */
  77.  unsigned char winleft,wintop,winright,winbottom;
  78.            };
  79.  extern int
  80. #if (OVL_TYPE==1)
  81.  Trn_frame(),Trn_signon(),Trn_set(),Trn_logon(),Trn_data(),Trn_logoff(),
  82.  Trn_data02(),            /* @0235 */
  83.  Trn_status(),Trn_vpexit(),Trn_data03();    /* @0322 */
  84. #else
  85.  frame(),signon(),set(),logon(),data(),logoff(),
  86.         status(),vpexit(),data03();        /* @0322 */
  87.  extern int frame0(),frame1();
  88.  extern int status0(),status1();
  89.  extern int status2(),status3();
  90.  extern int status4(),status5();
  91.  extern int exit1(),exit0();
  92.  extern int logoff0(),logoff1(),logoff2(),logoffgo();                   /* 0014 */
  93.  extern int data0(),data1(),data2(),data3(),data4(),data5();
  94.  extern int data6(),data7(),data8(),data9(),data10();    /* @0060 */    /* @0057 */
  95.  extern int data11(),data12();                /* @0061 */    /* @0060 */
  96.  extern  int logon0(),logon1(),logon2(),logon3(),logonexit();
  97.  extern  int signon0();
  98.  extern  int signon1();
  99.  extern  int signon2();
  100.  extern int set0(),set1(),set2(),set3(),set4(),set5(),set6();
  101. #endif
  102.  extern struct rqb *appl(),*path(),*sessa(),*fisc(),*csc(),*cpmgr();
  103.  extern struct rqb *pu(),*dfc(),*pfrom(),*landlc(),*config(),
  104. #if (OVL_TYPE==1)
  105.  *Trn_npinput();
  106. #else
  107.  *npinput();
  108. #endif
  109.  extern struct rqb *dlc7920();                    /* 1001 */
  110.  extern struct rqb *dlc7920s();                    /* 1083 */
  111.  extern struct rqb *dlctrn();                                   /* 1007 */
  112.  extern struct rqb *dlctrn39();                                 /* 1007 */
  113.  extern struct rqb *dlcasync();                                 /* 1051 */
  114.  extern struct rqb
  115. #if (OVL_TYPE==1)
  116.  *Trn_dataw_code();
  117. #else
  118.  *dataw_code();        /* @0072 */
  119. #endif
  120.  char *rentdos=NULL;
  121.  short curs[5]={0},curx[5]={0},cury[5]={0};            /* 0014 */
  122.  short cur_curs=0,cur_curx=0,cur_cury=0;
  123. #if (OVL_TYPE==0)        /* @0233 */
  124.     char *com1[7]={" sign","","","","logof","s",""};
  125.     char letter[7]={'O','S','L','D','F','T','E'};
  126.     char *com2[7]={"n","et","ogon","ata","","atus","xit"};
  127.     char *key1[5]={" F1","ESC","^Home","^Fi","Alt-x"};    /* @0217 */
  128.     char *key2[5]={"Help","Previous Menu","Main menu",  /* @0217 */
  129.          "Screen i",                /* @0127 */
  130. #if (OS_TYPE==0)        /* @0191 */
  131.             "quit to DOS"};
  132. #else                /* @0191 */
  133.             "quit to shell"};
  134. #endif                /* @0191 */
  135.     char *text[7]={"Signon procedure (name, password, mode)",
  136.          "Set procedure (logical screens, trace, statistic)",
  137.          "Logon procedure (establish session)",
  138.          "Data procedure (send and receive datagrams)",
  139.          "Logoff procedure (terminate session)",
  140.          "Status procedure (get information about VT)",
  141.          "Exit (clear signon parameters)"};
  142. #endif
  143.   short com_v=0;
  144.                     /* @0046 */        /* 0017 */
  145.                     /* @0046 */
  146.                     /* @0046 */
  147.  char sw_wait=0x00;    /* @0184 */
  148.  char xwbuf[256]={0x00};                    /* @0192 */
  149.  char wbuf[256]={0x00};                    /* @0192 */
  150.  char wbufd[256]={0x00};                    /* @0192 *//* @0243 */
  151.  struct mat (*wmat)[3]={NULL};                /* @0054 */
  152.  short ddfff=0;            /* @0200 */    /* @0044 *//* @0159 */
  153.  /* @0159 */
  154.  char *filename={"                                      "};/* @0060 */
  155.  struct segoff {                               /* @0158 *//* @0158 */
  156.    unsigned short seg;               /* @0159 */           /* @0158 */
  157.    unsigned short off;               /* @0158 */             /* @0158 */
  158.                };                    /* @0159 */
  159.  struct segoff (*dout)[512]={NULL};       /* @0158 *//* @0159 */
  160.  long cseek=0, nseek=0, oldseek=0;        /* @0157 @0158 *//* @0160 */
  161.  char d_g[]="\\d";        /* @0174 *//* @0184 */
  162.  unsigned short lasti=0,curi=0,curseg=0;       /* @0159 */
  163. char mail[]="mail\\";    /* @0157 *//* @0304 */
  164. char dpp[60]={0x00};    /* @0306 */
  165. char ddpp[60]={0x00};    /* @0157 *//* @0243 *//* @0306 */
  166.  char dtxt8[]="     ";        /* TEMPORARY */
  167.   char eoflag=0x00;        /* @0161 */
  168.   short type=0;
  169.   short nida=0,oldnida=0;            /* @0060 */        /* @0057 */
  170.   struct rqb *nrda=NULL,*crda=NULL,
  171.       *orda=NULL,*oldnrda=NULL;    /* @0060 */    /* @0057 */
  172.   short last=0;                 /* @0060 */
  173.   unsigned short plj=0,lj=0;/* @0061 @0060 @0158 *//* @0159 */
  174.   short fdd=0,fddd=0,le=0;    /* @0159 */
  175.   short dfdd=0;        /* @0243 */
  176.   unsigned char *tp=NULL;        /* @0061 *//* @0184 */
  177.   long sendno=0;                        /* @0072 */
  178.   char scrn=0x00;                    /* 0017 */
  179.   struct rqb *rqbp=NULL;
  180.   struct segprf *segp=NULL;
  181.   struct init3 *wp=NULL;            /* @0050 */        /*  0017 */
  182.   char rhhdr0[3]={0x63,0x80,0x00};                /* @0048 */
  183. char cond=0x00;                            /* 0017 */
  184. char name[8]="";
  185.    short signbuf[5]={Bufsign1,Bufsign2,Bufsign3,
  186.              Bufsign4,Bufsign5};        /* @0208 */
  187.    short sigsw[5]={0,0,0,0,0};                                  /* @0029 */
  188.    short ss[5]={0};                                                 /* @0029 */
  189.    char *pt1=NULL,*pt2=NULL,*pt3=NULL;
  190. unsigned char *rdos=NULL;        /* @0201 */
  191. short msg28=0;            /* @0201 */
  192.   struct nau *vtnau=NULL;                        /* @0044 */
  193.    char ch[26]={0};
  194.    short l=0,j=0;
  195.    short leng=0;                            /* @0044 */
  196. short px1=0,py1=0,px2=0,py2=0,pcurx=0,pcury=0,pxw=0,pyw=0;
  197. char *begpt=NULL,*curpt=NULL;
  198. char pattr='\0';
  199. union REGS reg={0};
  200. short offs=0;
  201. short hoffs=0;    /* @0233 */
  202.   short textcol[5]={0},backcol[5]={0};           /* 0014 */     /* 0017 */
  203.  short msw2=0;        /* @0221 */
  204.   int akey=0,bkey=0;
  205. struct ekran {
  206.    char icon;
  207.    char attrib;
  208.     };
  209. #if (OVL_TYPE==0)     /* @0264 */
  210. char * ind_ENABLE [2] = {"DISABLE"," ENABLE"};
  211. char nodeptr[]=" Nodes ";    /* @0266 */
  212. char nodehead[]="Name            Addr             Type"; /* @0266 */
  213. char dlcptr[]=" Links ";   /* @0266 */
  214. char dlchead[]="Name         Type";    /* @0266 */
  215. char ntype[]={0x10,0x20,0x30,0x01,0x02,0x04,0x09};    /* @0266 */
  216. char *nntype={"MY","OTHER","LVS","8431","8432","8434","8439"};
  217. char dtype[]={1,2,3,4,5,6,7,8,9};    /* 1083 @0266 */
  218. char *ddtype[]={"AKK","LAN","ASY","BSC","SDLC","7920","TRN","TRN39","7920S"};
  219. /* 1083 */
  220. #endif
  221. int attr_addr[1920]={0};
  222. char  buffer [1920]={0x00}, attrib[16]={0x00};
  223. struct ekran screen [1920]={0};
  224.  int   cursor_pos=0,laddr=0, haddr=0,
  225.  enable_flag_port=1,enable_flag_kbd=1,enable_flag_sys=1;  /* @0317 */
  226. char *mix=NULL;
  227. int cursor_row=0, cursor_col=0;
  228. int ind_y=0;
  229. unsigned int enable_x1=0,enable_x2=0,insert_x=0,insert=0;
  230.  
  231. int portkey=0;
  232.  
  233. int swi=0;
  234.  
  235. char colortable[256]={0x00};
  236. unsigned int oldcursor=0, shortcursor=0,
  237.  tallcursor=0, nocursor=0x2000,vissegment=0;
  238. unsigned int baseport=0;
  239. struct save_7927  buf7927={0};    /* @0208 */
  240.  
  241. struct buf_dos {
  242. #if (OS_TYPE!=0)    /* @0215 */
  243.  unsigned char contents [4000];     /* @0208 */
  244. #endif            /* @0215 */
  245.  unsigned int cursor_size;
  246.  int curx,cury,currmode;    /* @0233 */
  247. } buf2580={0};
  248.  
  249. char fmindex[] =           /* 255 means that profile is not allowed */
  250.  {0,       /*  0 */
  251.  255,      /*  1 */
  252.  1,        /*  2 */
  253.  2,        /*  3 */
  254.  3,        /*  4 */
  255.  4,        /*  5 */
  256.  255,      /*  6 */
  257.  5,        /*  7 */
  258.  255,255,255,255,255,255,255,255,255,  /* 8-16 */
  259.  6,        /* 17 */
  260.  7};       /* 18 */
  261.  
  262. char tsindex[] =           /* 255 means that profile is not allowed */
  263. {255,      /*  0 */
  264. 0,         /*  1 */
  265. 1,         /*  2 */
  266. 2,         /*  3 */
  267. 3,         /*  4 */
  268. 4,         /*  5 */
  269. 255,       /*  6 */
  270. 5,         /*  7 */
  271. 255,255,255,255,255,255,255,255,255};  /* 8-16 */
  272.  
  273. /* sessa */
  274.   struct avt0 *avt=NULL;    /* AVT table */        /* @0087 */
  275.   unsigned char Flag28=0x00;        /* @0201 */
  276.   unsigned char Flagport=0x00;        /* @0201 */
  277.   unsigned char optflg=0x00,flag2=0x00,tf=0x00,sflag=0x00;  /* @0203 */
  278.   /* @0230 */
  279.   struct prqb *first_rqb=NULL;                     /* @0023 */
  280.   struct prqb *last_rqb=NULL;                                   /* @0023 */
  281.   struct wrktb tmp2tb[1]={0};   /* 1005 */
  282.   char *ptr=NULL;                             /* @0088 */         /* @0023 */
  283.   /* @0230 */
  284.   short bfd=0;        /* @0206 */
  285.   struct srdt *ws=NULL;
  286.   struct rdt *wr=NULL;
  287.   struct mat *wn=NULL;
  288.   struct dlctb *wd=NULL;         /* @0043 */
  289.   struct majtb *wm=NULL;
  290.   struct aname (*wa)[3]={NULL};
  291.   struct nau *wnau=NULL;
  292.   /* @0205 */
  293.   short rc=0;              /* @0043 */
  294. /* @0304 */
  295. struct buf_vt bufvt2580={0};    /* @0215 *//* @0233 */
  296. char far *videobuf=NULL;        /* @0207 */
  297.  short  sw1=0;
  298.  short  sw2[5]={0,0,0,0,0};                       /* 0014 */
  299.  short  x1[5]={0},y1[5]={0},x2[5]={0},y2[5]={0};       /* 0014 */
  300.  short escptr[5]={0};      /* @0206 */                        /* 0014 */
  301.  short  esc=0;
  302.  short hsw=0;
  303.  short msw=0;
  304.  short input=0;
  305.  char escflg=0x00;            /* @0046 */
  306.  (*escrtn)()=NULL;            /* @0046 */
  307.  char save25[80]={0x00};
  308.  short escape=256+94;          /* escape code CTRL F1 */
  309.                                 /* 0014 */
  310.  char vt_flag=0x00;
  311.  short scr_no=0;
  312.   short unit[4]={2020,100,8,272};     /* @0307 */
  313.   short nu=0;
  314.                                 /* 0017 */
  315.   short class=0;
  316.                                 /* @0034 */
  317.   struct rqb *bufp=NULL;
  318.   short *pf=NULL;
  319.  char dispflag='\0';        /* @0056 */
  320. char pww[16]={0x00};                        /* @0071 */
  321. char outbuffer[1920]={0x00};    /* @0185 */
  322. struct out7920 *out7920=NULL;/* @0185 */
  323.  
  324. int col=0;    /* @0185 */
  325. int row=0;    /* @0185 */
  326. int color=0;    /* @0185 */
  327. int width=0;    /* @0185 */
  328. /* va_list arg_list=0;*/ /* @0185 */
  329.   struct parmglu *wglu=NULL;
  330.   struct tmp2 *wtmp2=NULL;
  331.   struct sess *wsess=NULL;
  332.   struct majtb *wmtb=NULL;
  333.   struct nausg *wnseg=NULL;
  334.   struct segprf *wseg=NULL;
  335.   struct th *wth=NULL;
  336.   struct rh *wrh=NULL;        /* @0157 */
  337.   union ru *wru=NULL;
  338.   struct hscb *whscb=NULL;
  339.   struct lhscb *wlhscb=NULL;
  340.   struct bind *wbind=NULL;                                 /* 1003 */
  341.   char out_buffer[1920]={0};  /* 1003 *//* @0175 */
  342.   struct rqb *rrqb=0;
  343.   int was_bufm=0;
  344.   int was_vvodz=0;
  345. char opr[20]={0};
  346. /* 5001 */
  347.  
  348. unsigned char a_to_e[256]={
  349.                             0X00,0X01,0X02,0X03,0X37,0X2D,0X2E,0X2F,/*0*/
  350.                             0x16,0x05,0x25,0x0b,0x0c,0x0d,0x0e,0x0f,
  351.                             0X10,0X11,0X12,0X13,0X3C,0X3D,0X32,0X26,/*1*/
  352.                             0x18,0x19,0x3f,0x27,0x1c,0x1d,0x1e,0x1f,
  353.                             0X40,0X4F,0X7F,0X7B,0X5B,0X6C,0X50,0X7D,/*2*/
  354.                             0x4d,0x5d,0x5c,0x4e,0x6b,0x60,0x4b,0x61,
  355.                             0XF0,0XF1,0XF2,0XF3,0XF4,0XF5,0XF6,0XF7,/*3*/
  356.                             0xf8,0xf9,0x7a,0x5e,0x4c,0x7e,0x6e,0x6f,
  357.                             0X7C,0XC1,0XC2,0XC3,0XC4,0XC5,0XC6,0XC7,/*4*/
  358.                             0xc8,0xc9,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,
  359.                             0XD7,0XD8,0XD9,0XE2,0XE3,0XE4,0XE5,0XE6,/*5*/
  360.                             0xe7,0xe8,0xe9,0x4a,0xe0,0x5a,0x5f,0x6d,
  361.                             0X79,0X81,0X82,0X83,0X84,0X85,0X86,0X87,/*6*/
  362.                             0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96,
  363.                             0X97,0X98,0X99,0XA2,0XA3,0XA4,0XA5,0XA6,/*7*/
  364.                 0xa7,0xa8,0xa9,0xc0,0x6a,0xd0,0xa1,0x07,
  365. #if (KOI8_TYPE == 0)    /* Alternate coding */    /* @0181 */
  366.                             0XC1,0XBA,0XC2,0XBF,0XBC,0XC5,0XEC,0XFA,/*8*/
  367.                             0xcb,0xcc,0xd2,0xce,0xd4,0xc8,0xd6,0xdc,
  368.                             0XD7,0XC3,0XE3,0XEB,0XBE,0XE7,0XBB,0XFE,/*9*/
  369.                             0xfb,0xfd,0x7d,0xef,0xee,0xfc,0xb8,0xdd,
  370.                             0X81,0X78,0XAF,0X8D,0X8A,0X85,0XAE,0XB2,/*A*/
  371.                             0x8f,0x90,0x9a,0x9b,0x9c,0x9d,0x96,0x9f,
  372.                             0X2B,0X2C,0X09,0X20,0X29,0X43,0X44,0X45,/*B*/
  373.                             0x46,0x39,0x30,0x38,0x08,0x47,0x48,0x28,
  374.                             0X23,0X24,0X06,0X21,0X15,0X2A,0X49,0X51,/*C*/
  375.                             0x33,0x1a,0x34,0x36,0x31,0x35,0x3a,0x52,
  376.                             0X53,0X54,0X56,0X57,0X62,0X63,0X64,0X65,/*D*/
  377.                 0x66,0x17,0x22,0x14,0x04,0x0a,0x1b,0x3b,
  378. #else            /* GOST */    /* @0181 */
  379.                 0X2B,0X2C,0X09,0X20,0X29,0X43,0X44,0X45,/*8*/
  380.                             0x46,0x39,0x30,0x38,0x08,0x47,0x48,0x28,
  381.                 0X23,0X24,0X06,0X21,0X15,0X2A,0X49,0X51,/*9*/
  382.                             0x33,0x1a,0x34,0x36,0x31,0x35,0x3a,0x52,
  383.                 0X53,0X54,0X56,0X57,0X62,0X63,0X64,0X65,/*A*/
  384.                             0x66,0x17,0x22,0x14,0x04,0x0a,0x1b,0x3b,
  385.                 0XC1,0XBA,0XC2,0XBF,0XBC,0XC5,0XEC,0XFA,/*B*/
  386.                             0xcb,0xcc,0xd2,0xce,0xd4,0xc8,0xd6,0xdc,
  387.                 0XD7,0XC3,0XE3,0XEB,0XBE,0XE7,0XBB,0XFE,/*C*/
  388.                             0xfb,0xfd,0x7d,0xef,0xee,0xfc,0xb8,0xdd,
  389.                 0X81,0X78,0XAF,0X8D,0X8A,0X85,0XAE,0XB2,/*D*/
  390.                             0x8f,0x90,0x9a,0x9b,0x9c,0x9d,0x96,0x9f,
  391. #endif                    /* @0181 */
  392.                             0X97,0X83,0XAC,0XAD,0X8C,0XA7,0X80,0XB6,/*E*/
  393.                             0xb3,0xb5,0xb7,0xb1,0xb0,0xb4,0x76,0xa0,
  394.                             0XC5,0X85,0X62,0X63,0X64,0X65,0X66,0X67,/*F*/
  395.                             0x68,0x69,0x70,0x71,0x72,0x73,0x74,0xff };
  396. unsigned char e_to_a[256]={ 0X00,0X01,0X02,0X03,0XDC,0X09,0XC2,0X7F,/*0*/
  397.                             0xbc,0xb2,0xdd,0x0b,0x0c,0x0d,0x0e,0xff,
  398.                             0X10,0X11,0X12,0X13,0XDB,0XC4,0X08,0XD9,/*1*/
  399.                             0x18,0x19,0xc9,0xde,0x1c,0x1d,0x1e,0x1f,
  400.                             0XB3,0XC3,0XDA,0XC0,0XC1,0X0A,0X17,0X1B,/*2*/
  401.                             0xbf,0xb4,0xc5,0xb0,0xb1,0x05,0x06,0x07,
  402.                             0XBA,0XCC,0X16,0XC8,0XCA,0XCD,0XCB,0X04,/*3*/
  403.                             0xbb,0xb9,0xce,0xdf,0x14,0x15,0xfd,0x1a,
  404.                             0X20,0XFA,0XF0,0XB5,0XB6,0XB7,0XB8,0XBD,/*4*/
  405.                             0xbe,0xc6,0x5b,0x2e,0x3c,0x28,0x2b,0x21,
  406.                             0X26,0XC7,0XCF,0XD0,0XD1,0XFB,0XD2,0XD3,/*5*/
  407.                             0xfc,0xf1,0x5d,0x24,0x2a,0x29,0x3b,0x5e,
  408.                             0X2D,0X2F,0XD4,0XD5,0XD6,0XD7,0XD8,0XF2,/*6*/
  409.                             0xf3,0xf4,0x7c,0x2c,0x25,0x5f,0x3e,0x3f,
  410. #if (KOI8_TYPE==0)    /* Alternate coding */    /* @0181 */
  411.                 0XF5,0XF6,0XF7,0XF8,0XF9,0X9A,0XEE,0XA0,/*7*/
  412.                             0xa1,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22,
  413.                             0XE6,0X61,0X62,0X63,0X64,0X65,0X66,0X67,/*8*/
  414.                             0x68,0x69,0xa4,0xa5,0xe4,0xa3,0xe5,0xa8,
  415.                             0XA9,0X6A,0X6B,0X6C,0X6D,0X6E,0X6F,0X70,/*9*/
  416.                             0x71,0x72,0xaa,0xab,0xac,0xad,0xae,0xaf,
  417.                             0XEF,0X7E,0X73,0X74,0X75,0X76,0X77,0X78,/*A*/
  418.                             0x79,0x7a,0xe0,0xe1,0xe2,0xe3,0xa6,0xa2,
  419.                             0XEC,0XEB,0XA7,0XE8,0XED,0XE9,0XE7,0XEA,/*B*/
  420.                             0x9e,0x80,0x81,0x96,0x84,0x85,0x94,0x83,
  421.                             0X7B,0X41,0X42,0X43,0X44,0X45,0X46,0X47,/*C*/
  422.                             0x48,0x49,0x95,0x88,0x89,0x8a,0x8b,0x8c,
  423.                             0X7D,0X4A,0X4B,0X4C,0X4D,0X4E,0X4F,0X50,/*D*/
  424.                             0x51,0x52,0x8d,0x8e,0x8f,0x9f,0x90,0x91,
  425.                             0X5C,0XCF,0X53,0X54,0X55,0X56,0X57,0X58,/*E*/
  426.                             0x59,0x5a,0x92,0x93,0x86,0x82,0x9c,0x9b,
  427.                             0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,/*F*/
  428.                 0x38,0x39,0x87,0x98,0x9d,0x99,0x97,0xff };
  429. #else            /* GOST */    /* @0181 */
  430.                 0XF5,0XF6,0XF7,0XF8,0XF9,0X9A,0XEE,0Xd0,/*7*/
  431.                 0xd1,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22,
  432.                             0XE6,0X61,0X62,0X63,0X64,0X65,0X66,0X67,/*8*/
  433.                 0x68,0x69,0xd4,0xd5,0xe4,0xd3,0xe5,0xd8,
  434.                 0Xd9,0X6A,0X6B,0X6C,0X6D,0X6E,0X6F,0X70,/*9*/
  435.                 0x71,0x72,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
  436.                             0XEF,0X7E,0X73,0X74,0X75,0X76,0X77,0X78,/*A*/
  437.                 0x79,0x7a,0xe0,0xe1,0xe2,0xe3,0xd6,0xd2,
  438.                 0XEC,0XEB,0Xd7,0XE8,0XED,0XE9,0XE7,0XEA,/*B*/
  439.                 0xce,0xb0,0xb1,0xc6,0xb4,0xb5,0xc4,0xb3,
  440.                             0X7B,0X41,0X42,0X43,0X44,0X45,0X46,0X47,/*C*/
  441.                 0x48,0x49,0xc5,0xb8,0xb9,0xba,0xbb,0xbc,
  442.                             0X7D,0X4A,0X4B,0X4C,0X4D,0X4E,0X4F,0X50,/*D*/
  443.                 0x51,0x52,0xbd,0xbe,0xbf,0xcf,0xc0,0xc1,
  444.                             0X5C,0XCF,0X53,0X54,0X55,0X56,0X57,0X58,/*E*/
  445.                 0x59,0x5a,0xc2,0xc3,0xb6,0xb2,0xcc,0xcb,
  446.                             0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,/*F*/
  447.                 0x38,0x39,0xb7,0xc8,0xcd,0xc9,0xc7,0xff };
  448. #endif                    /* @0181 */
  449. struct dcr dcr={0};
  450. struct dcr_el dcr_el={0};
  451. struct dcr ddcr={0};    /* @0243 */
  452. struct dcr_el ddcr_el={0};      /* @0243 */
  453. struct rqb *dataq=0;
  454. char user[8]={0x00};            /* @0157 */
  455. char duser[8]={0x00};            /* @0157 *//* @0243 */
  456. struct data2 *wda=NULL;
  457. int fff=0;         /* @0157 *//* @0159 */
  458. int cry=0;    /* @0186 */
  459. struct rqb *qrp=NULL;   /* @0158 */
  460. struct dcr *d_crec=NULL;          /* @0157 */
  461. struct dcr *dd_crec=NULL;          /* @0157 *//* @0243 */
  462. struct dcr_el *del=NULL;          /* @0157 */
  463. struct dcr_el *ddel=NULL;          /* @0157 *//* @0243 */
  464. struct nextprev {            /* @0159 */
  465.   long next;                 /* @0159 */
  466.   long prev;                 /* @0159 */
  467.         } nextprev={0};  /* @0159 */
  468. long seek=0;                    /* @0157 *//* @0158 */
  469. short doff=0;                  /* @0157 */
  470. short ddoff=0;                 /* @0306 */
  471. unsigned char shiftfl=0x04;             /* @0201 */
  472. struct naus0 *nps=NULL;
  473. #if (OVL_TYPE==1)      /* @0234 */
  474. int (*(pswitch[10]))()={    /* @0322 */
  475.        Trn_frame,Trn_signon,Trn_set,Trn_logon,Trn_data,
  476.        Trn_logoff,Trn_status,Trn_vpexit,Trn_data02,Trn_data03};/* @0322 */
  477. #else
  478. int (*(pswitch[10]))()={        /* @0322 */
  479.        frame,signon,set,logon,data,logoff,status,vpexit,
  480.        data02,data03};    /* @0224 *//* @0322 */
  481. #endif
  482.   char inithdr[3]={0x01,0x06,0x81};                /* @0048 */
  483. char termhdr[3]={0x01,0x06,0x83};                /* @0055 */
  484. #if (OVL_TYPE==0)    /* @0233 */
  485. int (*(fswitch[2]))()={                   /* @0224 */
  486.    frame0,                      /* 0 */   /* @0224 */
  487.    frame1,              /* 1 */   /* @0224 */
  488.                };                 /* @0224 */
  489.   char *statxt[3]={"Screen","Resource","Trace"};    /* @0216 */
  490.   char hstatus[]="STATUS";
  491.   int (*(stswitch[]))()={
  492.     status0,
  493.     status1,   /* @0245 */
  494.     status2,   /* @0245 */
  495.     status3,   /* @0245 */
  496.     status4,   /* @0245 */
  497.     status5    /* @0245 */
  498.             };
  499.  char *etxt[]={"Clear",
  500.                  "End of PORT"};        /* @0052 */
  501.  char hexit[]="EXIT";
  502.  int (*(eswitch[2]))()={
  503.    exit0,
  504.    exit1
  505.                };
  506. char *offtext[3]={"Screen","Condition","Go"};
  507. char hlogof[9]=" LOGOFF ";
  508. int (*(lfswitch[3]))()={
  509.     logoff0,
  510.     logoff1,
  511.     logoff2                            /* 0014 */
  512.                };
  513.  char hdata[6]=" DATA ";
  514.  /* @0159 */
  515.  /* @0230 */
  516.  char *datatxt[2]={"Send","Receive"};
  517.  int (*(dswitch[]))()={
  518.        data0,        /* main menu */
  519.        data1,        /* analyze main menu */
  520.        data2,        /* analyze Send menu */
  521.        data3,        /* analyze Source menu */
  522.        data4,        /* analyze remote user or confirmation */
  523.        data5,        /* analyze input */    /* @0057 */
  524.        data6,        /* analyze file name */    /* @0057 */
  525.        data7,        /* analyze datagram list */    /* @0057 */
  526.        data8,        /* analyze what to do with datagram */    /* @0057 */
  527.        data9,        /* analyze displaydata */    /* @0060 */
  528.        data10,        /* analyxe filename for savedata */    /* @0060 */
  529.        data11,           /* analyze overwrite    *//* 0061*/    /* @0060 */
  530.        data12        /* continue output */    /* @0061 */
  531.               };
  532.   char *dtxt[4]={"Display","Print","Save","Delete"};
  533.   char *dtxt3[2]={"NEW","File name"};
  534.   char *dtxt2[3]={"Remote user","Confirm","Source"};         /* @0044 */
  535.   short dar1[2]={4,7};
  536.   char *pk1[4]={" F1","Esc","Ctrl End","Enter"};/* @0067 *//* @0060 *//* @0061 *//* @0072 */
  537.   char *pk2[4]={"Help","Exit","Send text","New paragraf"};/* @0067 *//* @0060 */
  538.   char *rk1[5]={" F1","PgUp","PgDn","Enter","Esc"};/* @0060 */    /* @0061 */
  539.   char *rk2[5]={"Help","Previous","Next","Display","Exit"};/* @0060 *//* @0072 */
  540.   char *dk1[5]={" F1","Esc","F2","F3","F4"};    /* @0060 */    /* @0061 */
  541.   char *dk2[5]={"Help","Exit","Print","Delete","Save"};    /* @0060 */
  542.   char *sk1[5]={" F1","Up","Down","Enter","Esc"};        /* @0262 */
  543.   char hlogon[]=" LOGON ";
  544.   int (*(lswitch[3]))()={
  545.      logon0,        /* 0 */
  546.      logon1,        /* 1 */
  547.      logon2            /* 2 */                        /* 0014 */
  548.                };
  549.    char hsignon[]=" SIGNON ";
  550.                                 /* 0014 */
  551.    char *sigtxt[7]={"User name","Password","Application","Mode name",
  552.             "User data","Screen","Go"};
  553.    int (*(sswitch[3]))()={
  554.       signon0,        /* 0 */
  555.       signon1,        /* 1 */
  556.       signon2        /* 2 */                   /* 0014 */
  557.              };
  558. char hset[]=" SET ";
  559. char *settxt[4]={"VT modes","DLC modes","AP modes","Trace"};    /* @0203 */
  560. int (*(setswitch[]))()={
  561.   set0,            /* first routine */
  562.   set1,            /* analyze main menu */
  563.   set2,            /* analyze second level menu */
  564.   set3,            /* analyze Activata, Deactivate and Hot key */
  565.   set4,            /* analyze Name for DLC and AP */
  566.   set5,            /* analyze Y/N for Trace and Statistic */
  567.   set6            /* analyze Screen, Save, Cond */
  568.                };
  569.                                 /* @0031 */
  570. char *(settxt0[3])={"Activate","Deactivate","Hot key"};
  571. char *(settxt1[4])={"Dispatcher","Sessions","I/O","Buffers"};
  572. /* @0203 */
  573. char *(settxt3[3])={"Screen","Save buffer","Go"};
  574. char *(settxt4[2])={"CTRL","ALT"};
  575. short setar1[5]={3,2,2,4,3};
  576. short setar2[5]={8,9,8,5,9};
  577. char *(setar3[4])={settxt0,settxt0,
  578.              settxt0,settxt1 };  /* @0203 */
  579. short setar4[5]={16,19,21,23,27};
  580. short setar5[3]={3,3,2};
  581. short setar6[3]={8,10,7};
  582. char *((*setar7[3])[3])={(char *(*)[])&settxt3,
  583.              (char *(*)[])&offtext,
  584.              (char *(*)[])&settxt4};
  585. short setar8[3]={30,33,36};
  586. /* @0230 */
  587. #endif
  588.  struct rqb *((*(funct_table[ST_N]))())={
  589.                 appl,
  590.                 path,
  591.                 sessa,
  592.                 fisc,
  593.                 csc,
  594.                 cpmgr,
  595.                 pu,
  596.                 dfc,
  597.                 pfrom,
  598.                 landlc,
  599.                 config,
  600. #if (OVL_TYPE==1)    /* @0234 */
  601.             Trn_npinput,
  602. #else
  603.                 npinput,                        /* 1001 */
  604. #endif
  605.                 dlc7920,            /* 1001 */
  606.                                 dlctrn,                         /* 1007 */
  607.                 dlctrn39,    /* @0072 */     /* 1007 */
  608. #if (OVL_TYPE==1)
  609.             Trn_dataw_code,
  610. #else
  611.                 dataw_code,            /* @0072 */ /* 1051 */
  612. #endif
  613.                 dlcasync,     /* 1051 */
  614.                 dlcasync,     /* 1051 */
  615.                 dlcasync,      /* 1083 */
  616.                 dlc7920s       /* 1083 */
  617.                      };
  618.  /* @0264 */
  619. #if (OVL_TYPE==0)    /* @0264 */
  620.  unsigned char togr[ ]={
  621.  0x20,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x5b,0x2e,0x3c,0x28,0x2b,0x21,
  622.  0x26,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x5d,0x24,0x2a,0x29,0x3b,0x5e,
  623.  0x2d,0x2f,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x7c,0x2c,0x25,0x5f,0x3e,0x3f,
  624.  0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x23,0x40,0x27,0x3d,0x22,
  625.  };
  626. #endif
  627. #if (OS_TYPE!=0)    /* @0233 */
  628.   char hbuf[1080]={0x00};
  629. #endif
  630. char b_ins[]="INS";
  631. char twoblanks[]="  ";        /* @0226 */
  632. char u2[]="%2u";    /* @0226 */
  633. char u4[]="%.4u";    /* @0226 */
  634. char u5[]="%5u";    /* @0226 */
  635. char pgdn[]="PgDn";    /* @0226 */
  636. char pgup[]="PgUp";    /* @0226 */
  637. char u[]="%u";        /* @0226 */
  638. #if (OVL_TYPE==0)    /* @0233 */
  639.   char hhead[5]="HELP";
  640. char portdos[]="PORT-DOS";      /* @0226 */
  641. char datagram[]="DATAGRAMS";    /* @0226 */
  642. char areaname[]="Area name   Node name   LU name";    /* @0226 */
  643. char datetime[]="     Date        Time         Size";    /* @0226 */
  644. char ays[]="Are you sure?Reply Y/N";    /* @0226 */
  645. char fae[]="File already exist.Overrun?(Y/N)";    /* @0226 */
  646. char scrhead[]="Screen     Active/Inactive     Session     Remote AP name";
  647. char scrptr[]=" LOGICAL SCREENS ";    /* @0245 */
  648. char active[]="ACTIVE";        /* @0247 */
  649. char inactive[]="INACTIVE";
  650. /* @0230 */
  651. #endif
  652. char yes[]="YES";    /* @0247 */
  653. char no[]="NO";
  654. #if (OVL_TYPE==0)    /* @0264 */
  655.       unsigned char russ_table[ ] = {
  656.           0x41,0xE2,0x42,0xE7,0xE4,0x45,0xF6,0xFA,  /* 128-135 */
  657.           0xE9,0xEA,0x4B,0xEC,0x4D,0x48,0x4F,0xF0,  /* 136-143 */
  658.           0x50,0x43,0x54,0xF5,0xE6,0x58,0xE3,0xFE,  /* 144-151 */
  659.           0xFB,0xFD,0x27,0xF9,0xF8,0xFC,0xE0,0xF1,  /* 152-159 */
  660.           0x61,0xC2,0xD7,0xC7,0xC4,0x65,0xD6,0xDA,  /* 160-167 */
  661.           0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0x6F,0xD0,  /* 168-175 */
  662.           0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  /* 176-183 */
  663.           0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  /* 184-191 */
  664.           0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  /* 192-199 */
  665.           0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  /* 200-207 */
  666.           0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  /* 208-215 */
  667.           0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  /* 216-223 */
  668.           0x70,0x63,0xD4,0x79,0xC6,0x78,0xC3,0xDE,  /* 224-231 */
  669.           0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1,  /* 232-239 */
  670.           0x45,0x65,0x20,0x20,0x20,0x20,0x20,0x20,  /* 240-247 */
  671.           0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20}; /* 248-255 */
  672. #endif     /* @0264 */
  673.  
  674.   char rbshdr[3]={0x43,0x06,0x0A};      /* ru-header RBS */  /* 1005 */
  675.   char rhhdr[3]={0x0b,0x80,0x00};       /* rh-header     */  /* 1008 */
  676.   char rrbshdr[3]={0x43,0x06,0x1A};      /* ru-header RRBS */  /* 1008 */
  677.   char drlhdr[3]={0x43,0x06,0x02};    /* 1005 */
  678.   char rlihdr[3]={0x43,0x06,0x12};
  679.  
  680. char BIND1[25] =           /* image BIND                          1016 */
  681.  {0x01,    /*  0 */                                          /* 1016 */
  682.  0x03,      /*  1 */                                         /* 1016 */
  683.  0x03,        /*  2 */                                       /* 1016 */
  684.  0xa0,        /*  3 */                                       /* 1016 */
  685.  0xd0,        /*  4 */                                       /* 1016 */
  686.  0x20,        /*  5 */                                       /* 1016 */
  687.  0x80,      /*  6 */                                         /* 1016 */
  688.  0x00,0x00,        /*  7 */                                  /* 1016 */
  689.  0x85,0x85,  /* 8-9 */                                       /* 1016 */
  690.  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,          /* 1016 */
  691.  0x00,0x00,0x00,0x00};        /* 10-24 */               /* 1016 */
  692. char vt[]="VT  ";       /* @0226 */
  693. char l_s[]="LS-";    /* @0226 */
  694. char bindhdr[3]={0x6B,0x80,0x00};
  695. char bindfhdr[3]={0x81,0x06,0x85};
  696. short wver=0x0003;                  /* version           1010  */
  697. #if (OVL_TYPE==0)      /* @0264 */
  698. char ENABLE[]="ENABLE";         /* @0227 */
  699. char DISABLE[]="DISABLE";       /* @0227 */
  700. #endif
  701. int  vis_attr=0;                /* @0227 */
  702.  short help28=0;    /* @0233 */
  703. #if (OVL_TYPE==0)    /* @0254 */
  704. char *atype[]={"SNA","LEN","LAN","PSN"};
  705. char areahead[]="Addr    Name    Act/Inact   Status  Type  Nodes  Links  This node";
  706. char address[]="address";    /* @0248 */
  707. char *sttxt2[]={"System","AP","VT"};    /* @0254 */
  708. char *sttxt3[]={"Areas","Glu names","User names"};     /* @0254 */
  709. #endif            /* @0254 */
  710.  struct ovpp {                   /* 5001 */
  711.        struct rqb *wrqb;         /* 5001 */
  712.        void *xmit_queue_one;     /* 5001 */
  713.        };                        /* 5001 */
  714.  typedef  struct {
  715.      char address[18];
  716.      }PRD;
  717. typedef  struct {
  718.      short buffer[2000];
  719.      }DIR;
  720. typedef  struct {
  721.      short buffer_pool[3000];
  722.      char buf_id;
  723.      }DLC;
  724. typedef  struct {
  725.      short id_station;
  726.      char count;
  727.      }XMTWO;
  728. typedef  struct {
  729.      XMTWO *xm2;
  730.      short rezerv;
  731.      short length_in_buffer;
  732.      short user_data;
  733.      short user_length;
  734.      char user_space[50];       /* 5001 */
  735.      }XMONE;
  736. typedef struct {
  737.     char id_station1;
  738.     char id_station2;
  739.     char id_station3;
  740.     char id_station4;
  741.     char id_station5;
  742.     char id_station6;
  743.     }DEST;
  744. typedef  struct {
  745.      char blok[58];
  746.      char buf_entr[255];
  747.      } BUFDRV;
  748. typedef  struct {
  749.      char outbuf[255];
  750.      }ONE;
  751. typedef  struct {
  752.      char buf_begin;
  753.      char buf_end;
  754.      }TWO;
  755. typedef  struct {
  756.      short station_id;     /*¿ñÑ¡Γ¿Σ¿¬áΓ«p ßΓᡵ¿¿*/
  757.      short buffer_left;    /*¬«½¿τÑßΓó« «ßΓáóΦ¿σß∩ íπΣÑp«ó*/
  758.      char buffer_get;      /*¬«½¿τÑßΓó« íπΣÑp«ó ñ½∩ »«½πτÑ¡¿∩*/
  759.      char res[3];
  760.      ONE *xm1;           /*áñpÑß »Ñpó«ú« »p¿¡∩Γ«ú« íπΣÑpá*/
  761.      }TGET;
  762. typedef  struct {
  763.      short station_id;
  764.      short buffer_left;
  765.      char reserv[4];
  766.      ONE *xm1;
  767.      }TFREE;
  768. typedef  struct {
  769.      short sap_station_id;
  770.      short link_station_id;
  771.      char timer_t1;
  772.      char timer_t2;
  773.      char timer_ti;
  774.      char maxout;
  775.      char maxin;
  776.      char maxout_incr;
  777.      char max_retry_cnt;
  778.      char rsap_value;
  779.      short max_i_field;
  780.      char access_priority;
  781.      char nul;
  782.      DEST *pdad;
  783.      }TOPEN;
  784. typedef struct {
  785.      short station_id;
  786.      char transmit_fs;
  787.      char rsap;
  788.      XMONE *xm1;
  789.      XMTWO *xm2;
  790.      short buffer_len_one;
  791.      short buffer_len_two;
  792.      ONE *pbo;
  793.      TWO *pbt;
  794.      }TWRITE;
  795. typedef struct {
  796.     int point_id;
  797.     }POINT;
  798. typedef  struct {
  799.      char adapter;
  800.      char node_address[6];
  801.      short num_rsv_buffers;
  802.      short rcv_buffer_len;
  803.      short dnb_buffer_len;
  804.      char data_hold_buf;
  805.      PRD * pia;
  806.      short dir_buf_size;
  807.      short dir_pool_blocks;
  808.      DIR *buf1;
  809.      char dlc_max_sta;
  810.      void  *received_data;
  811.      short *open_data;
  812.      char maxout;
  813.      char maxin;
  814.      char station_count;
  815.      short dlc_buf_size;
  816.      short dlc_pool_len;
  817.      DLC *buf2;
  818.      }OPEN;
  819. typedef  struct {
  820.      short station_id[255];
  821.      short *close_data;
  822.      }CLOSE;
  823. typedef  struct {
  824.      char command;
  825.      short station_id;
  826.      XMONE *xm1;
  827.      XMTWO *xm2;
  828.      short buffer_len_one;
  829.      short buffer_len_two;
  830.      ONE *pbo;
  831.      TWO *pbt;
  832.      short *close_data;
  833.      }WRITE;
  834. typedef struct {
  835.     short sap_station_id;
  836.     char maxout;
  837.     char maxin;
  838.     char rsap_value;
  839.     char access_priority;
  840.     DEST *dad;
  841.     short *ioctl_data;
  842.     short station_id;
  843.     char option;
  844.     short *received_data;
  845.     }OPEN_STATION;
  846. typedef struct {
  847.     short station_id_1b;
  848.     short *route ;
  849.     short *connect_data;
  850.     }CONNECT_STATION;
  851. typedef struct {
  852.     short station_id;
  853.     short *close_station_data;
  854.     }CLOSE_STATION;
  855. typedef struct {
  856.     short station_id;
  857.     char buffer_get;
  858.     short *get_data;
  859.     }GET;
  860. typedef struct {
  861.     short station_id;
  862.     ONE *pbo;
  863.     short *free_data;
  864.     }FREE;
  865. typedef struct {
  866.      char ccb_adapter;
  867.      char ccb_command;
  868.      char ccb_retcode;
  869.      char ccb_work;
  870.      POINT *pnt;
  871.      void *cplt;
  872.      void *tab;
  873.        } CCB;
  874.        typedef struct {
  875.         void *buf_pointer;
  876.     short rcv_len;
  877.     short length_in_buffer;
  878.     short adapter_offset;
  879.     short user_length;
  880.     short station_id;
  881.     char options;
  882.     char message_type;
  883.     short buffer_left;
  884.     char rcv_fs;
  885.     char adapter_num;
  886.     char lan_header_length;
  887.     char dlc_header_length;
  888.     struct {
  889.             unsigned char ac;
  890.         unsigned char fc;
  891.         char dnode_addr[6];
  892.         char onode_addr[6];
  893.          struct {
  894.             unsigned dl:5;
  895.             unsigned tm:3;
  896.             unsigned rs:4;
  897.             unsigned dk:1;
  898.             unsigned nk:3;
  899.             short ukm1;
  900.             short ukm2;
  901.             short ukm3;
  902.             short ukm4;
  903.             short ukm5;
  904.             short ukm6;
  905.             short ukm7;
  906.             short ukm8;
  907.               }im;
  908.                  }lan_header;
  909.     long dlc_header;
  910.     char rcvd_data;
  911.     }RECEIVE_BUF1;
  912. typedef struct{
  913.     void *buf_pointer;
  914.     short rcv_len;
  915.     short length_in_buffer;
  916.     short adapter_offset;
  917.     short user_length;
  918.     char rcvd_data;
  919.     }RECEIVE_BUF2;
  920. /* CCB *PCCB=NULL;          /* 0282 */
  921.  BUFDRV *PBUF=NULL;
  922.  
  923. char buffree[8]={0};         /* 5001 */
  924. char buftrn39[6500]={0};     /* 5001 */
  925. int cmd=0;
  926. char PR1_NODE_ADDR[6]={0};   /* 5001 */
  927. short PR1_ST_ID_15=NULL;
  928. short PR1_LINK_ST_ID_19[9]={0};
  929. char mxid[20]={0,0,0,0,0,0,0,0,0xb0,8,0,0,0,0,0,0,0,0,0x0b,0x71};
  930. char wovpp[40]={0};
  931. char tbs[128*sizeof(struct tbs)]={0};
  932. char tabm[1024*sizeof(struct tabm)]={0};
  933. char adapter=NULL;
  934. short station_id15=NULL;
  935.  
  936. /*void *PBUF=NULL;*/
  937. void *CMD_CPLT=NULL;
  938. void *REC_DATA=NULL;
  939. OPEN parm_open={0};
  940. CLOSE parm_close={0};
  941. WRITE parm_write={0};
  942. OPEN_STATION parm_open_station={0};
  943. CONNECT_STATION parm_connect_station={0};
  944. CLOSE_STATION parm_close_station={0};
  945. GET parm_get={0};
  946. FREE parm_free={0};
  947. PRD product_id_addr={0};
  948. DIR dir_pool_address={0};
  949. DLC dlc_pool_addr={0};
  950. POINT ccb_pointer={0};
  951. XMONE *xmit_queue_one=NULL;
  952. XMTWO *xmit_queue_two=NULL;
  953. DEST dest_addr={0};
  954. BUFDRV bufer={0};                /* 5001 */
  955. DLC *dlc=NULL;                   /* 5001 */
  956.  
  957. OPEN *pop=NULL;
  958. CLOSE *pcl=NULL;
  959. WRITE *pwr=NULL;
  960. OPEN_STATION *post=NULL;
  961. CONNECT_STATION *pcnst=NULL;
  962. CLOSE_STATION *pcst=NULL;
  963. GET *pgt=NULL;
  964. FREE *pft=NULL;
  965. DEST *det=NULL;
  966. TGET *ccb_get=NULL;
  967. TFREE *ccb_free=NULL;
  968. TOPEN *ccb_open=NULL;
  969. TWRITE *ccb_write=NULL;
  970. ONE *buffer_one=NULL;
  971. TWO *buffer_two=NULL;
  972. CCB  *parm_ccb=NULL;
  973.  
  974. char *PCCB39=NULL;            /* 5001 */
  975. struct BUFDRV *PBUF39=NULL;         /* 5001 */
  976. short (* REC_DRV_DATA1)();   /*π¬áºáΓѽ∞ ¡á »/» »α¿Ñ¼á ñá¡¡δσ*/
  977. short (* REC_DRV_DATA)();    /*π¬áºáΓѽ∞ ¡á »/» ºáóÑαΦÑ¡¿∩ ¬«¼á¡ñδ »α¿Ñ¼á*/
  978. short (* CMD_DRV)();         /*π¬áºáΓѽ∞ ¡á »/» ºáóÑαΦÑ¡¿∩ ¬«¼á¡ñ*/
  979.  
  980.  
  981. char *UCCB=NULL;       /*ôèÇçÇÆàèÄäÇ ææé.âïÄüÇï£ìǃ ÅàÉàîàììǃ äDRVINT.ASM*/
  982. char buf16[16]={0};
  983. char buf15[16]={0};
  984. char buft15[30]={0};
  985. char buf27[16]={0};
  986. char buft27[12]={0};
  987. char buf28[16]={0};
  988. char buft28[13]={0};
  989. char buf0b[16]={0};
  990. char buft0b[24]={0};
  991. char buf26[16]={0};
  992. char buft26[12]={0};
  993.  
  994. struct ccb15s *u15ccb=NULL;
  995. struct tab15s *tab15u=NULL;
  996.  
  997. struct ccb27s *u27ccb=NULL;
  998. struct tab27s *tab27u=NULL;
  999.  
  1000. struct ccb16s *u16ccb=NULL;
  1001.  
  1002. struct ccb28s *u28ccb=NULL;
  1003. struct tab28s *tab28u=NULL;
  1004.  
  1005. struct ccb0bs *u0bccb=NULL;
  1006. struct tab0bs *tab0bu=NULL;
  1007.  
  1008. struct tab26s *tab26u=NULL;
  1009. struct ccb26s *u26ccb=NULL;          /* 5001 */
  1010. struct crec {
  1011.                 void far *asc_rcv_exit;
  1012.                 short asc_speed;
  1013.                 unsigned char asc_width ; /* word width */
  1014.                 unsigned char asc_parity; /* port & parity */
  1015.                 unsigned char asc_stops; /* number of stop bits */
  1016.             } rec={0};
  1017. union REGS inregs={0}, outregs={0};
  1018. struct SREGS segregs={0};
  1019. char MSG[101]={0x00};
  1020. */                   /* @0282 */
  1021. short fd=0;          /* @0231 */
  1022. char portpath[60]={0x00};   /* @0292 *//* @0304 */
  1023. unsigned char bufvt=0x00;    /* 1082 */
  1024. unsigned char buflan=0x00;   /* 1082 */
  1025. unsigned int pspseg=0;     /* @0320 */
  1026. char mbreak=0x00;          /* @0320 */
  1027. char *dosbreak=0;          /* @0320 */
  1028. char *mdta=0;              /* @0320 */
  1029. long *dosdta=0;            /* @0320 */
  1030. int *dospid=0;             /* @0320 */
  1031. long sample=0x5555aaaa;    /* @0320 */
  1032. char *old65=0;        /* @0320 */
  1033. char *ydta=0;        /* @0320 */
  1034. int ypsp=0;        /* @0320 */
  1035. char *old24=0;        /* @0320 */
  1036. struct FILELIST {        /* @0322 */
  1037.   int current;
  1038.   int first;
  1039.   int findoff;
  1040.   int total;
  1041.   int files;
  1042.   int dirs;
  1043.   int curspos;
  1044.   int insert;
  1045.   int offset;
  1046.   char cdir[MAXDIR+13];
  1047.   unsigned char sw1,sw2,sw3;
  1048.  } FL={0,0,0,0,0,0,0,0,0,NULL,0,0,0};
  1049. /* O V E R L A Y */
  1050. #if (OVL_TYPE==1)
  1051.  #include "overl.h"
  1052. #endif
  1053.